import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;

import java.sql.SQLException;

public class Main {
    public static void main(String[] args) {
        //创建druid连接池对象 dataSource 数据源
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/jdbc");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        dataSource.setInitialSize(5);//初始化连接池数量
        dataSource.setMaxActive(10);//最大连接池数量
        dataSource.setMaxIdle(5);//最大空闲连接池数量
        dataSource.setMinIdle(5);//最小空闲连接池数量
        dataSource.setMaxWait(5000);//最大等待时间
        dataSource.setValidationQuery("select 1");//验证连接是否可用
        dataSource.setTestOnBorrow(true);//在获取连接的时候检查是否可用
        dataSource.setTestOnReturn(true);//在归还连接的时候检查是否可用
        dataSource.setTestWhileIdle(true);// 池中连接是否空闲检查
        dataSource.setTimeBetweenEvictionRunsMillis(3000);// 定时检查
        dataSource.setMinEvictableIdleTimeMillis(60000);// 连接池中连接最大空闲时间
        dataSource.setRemoveAbandoned(true);// 是否开启超时
        dataSource.setRemoveAbandonedTimeout(1800);// 超时时间
        dataSource.setLogAbandoned(true);
        dataSource.setPoolPreparedStatements(true);
        try {
            DruidPooledConnection connection = dataSource.getConnection();
            if(connection!=null)
            {
                System.out.println("连接成功");
            }
            else
            {
                System.out.println("连接失败");
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}